package cc.rengu.igas.bsps.facade;

import cc.rengu.igas.bsps.facade.request.*;
import cc.rengu.igas.bsps.facade.response.*;
import cc.rengu.igas.bsps.facade.result.Result;

/**
 * 商户服务查询类功能.
 */
public interface MchntQueryService {

    /**
     * 营销轮播广告查询
     *
     * @param request 请求报文
     * @return 响应报文
     */
    Result<MarketAdvertQueryResponse> marketAdvertQuery(MarketAdvertQueryRequest request);

    /**
     * 当日收款信息查询
     *
     * @param request 请求报文
     * @return 响应报文
     */
    Result<CurrentTransStatisInfoQueryResponse> currentTransStatisInfoQuery(CurrentTransStatisInfoQueryRequest request);

    /**
     * 商户待结算余额查询
     *
     * @param request 请求报文
     * @return 响应报文
     */
    Result<MchntAcctBalanceQueryResponse> mchntAcctBalanceQuery(MchntAcctBalanceQueryRequest request);

    /**
     * 商户优惠剩余额度查询
     *
     * @param request 请求报文
     * @return 响应报文
     */
    Result<MchntDiscountSurplusQuotaQueryResponse> mchntDiscountSurplusQuotaQuery(MchntDiscountSurplusQuotaQueryRequest request);

    /**
     * 商户限额查询
     *
     * @param mchntQuotaInfoQueryRequest 请求报文
     * @return 响应报文
     */
    Result<MchntQuotaInfoQueryResponse> mchntQuotaInfoQuery(MchntQuotaInfoQueryRequest mchntQuotaInfoQueryRequest);

    /**
     * 商户交易统计信息查询
     *
     * @param mchntTransStatisInfoQueryRequest 请求报文
     * @return 响应报文
     */
    Result<MchntTransStatisInfoQueryResponse> mchntTransStatisInfoQuery(MchntTransStatisInfoQueryRequest mchntTransStatisInfoQueryRequest);

    /**
     * 工单处理明细查询
     *
     * @param eventProcLogQueryRequest 请求报文
     * @return 响应报文
     */
    Result<EventProcLogQueryResponse> eventProcLogQuery(EventProcLogQueryRequest eventProcLogQueryRequest);

    /**
     * 语音设备绑定列表查询操作
     *
     * @param voiceDevBindListQueryRequset 请求报文
     * @return 响应报文
     */
    Result<VoiceDevBindListQueryResponse> voiceDevBindListQuery(VoiceDevBindListQueryRequset voiceDevBindListQueryRequset);

    /**
     * 商户绑定列表查询
     *
     * @param mchntBindListQueryRequset 请求报文
     * @return 响应报文
     */
    Result<MchntBindListQueryResponse> mchntBindListQuery(MchntBindListQueryRequset mchntBindListQueryRequset);
}
